/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sisgraf.controler;
import sisgraf.dao.PedidoDaoImp;
import sisgraf.model.Pedido;
import java.util.List;
import javax.swing.table.TableModel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
/**
 *
 * @author Jordan Guerra
 */
public class PedidoControler extends Controler {
    private PedidoDaoImp daoLock = new PedidoDaoImp();
    public TableModel getListarPedido(String par) {
        List<Pedido> lista = null;
        if (par != null)
            lista = new PedidoDaoImp().list(par);
        else
            lista = new PedidoDaoImp().list("p.id = 0");
        String[] cabecalho = new String[]  {"Pedido","Orçamento","It.Orç.","Serviço",
            "Cliente","Vendedor","Prev.Entr.","Entrega","Faturamento","Cancelamento",
            "Valor"};
        TableModel modelo = new PedidoTabela(lista, cabecalho);
        return modelo;
    }
    public void ajustarTabela(JTable tabela){
        DefaultTableCellRenderer e = new DefaultTableCellRenderer();
        DefaultTableCellRenderer c = new DefaultTableCellRenderer();
        DefaultTableCellRenderer d = new DefaultTableCellRenderer();
        e.setHorizontalAlignment(SwingConstants.LEFT);
        c.setHorizontalAlignment(SwingConstants.CENTER);
        d.setHorizontalAlignment(SwingConstants.RIGHT);
        int[] tamCol = new int[] {6,8,8,20,20,20,10,10,10,10,13};
        DefaultTableCellRenderer[] aliCol = new DefaultTableCellRenderer[] {d,d,d,e,e,e,e,e,e,e,d};
        super.ajustarTabela(tabela, tamCol, aliCol);
    }
    public Pedido prepararAlterarPedido(int id){
        return daoLock.getLockPedido(id);
    }
    public boolean excluirPedido(Pedido pedido) {
        PedidoDaoImp dao = new PedidoDaoImp();
        return dao.remove(pedido);
    }
    public boolean adicionarPedido(Pedido pedido){
        PedidoDaoImp dao = new PedidoDaoImp();
        return dao.save(pedido);
    }

    public boolean alterarPedido(Pedido pedido){
        if (!daoLock.settLockPedido(pedido)){
            return false;
        } else {
            return true;
        }
    }
    public boolean liberarPedido(){
        if (!daoLock.unLockPedido()){
            return false;
        } else {
            return true;
        }
    }
}
